Manufacturers (e.g., licensors) often license use of software and hardware products to users (e.g., licensees). Typically, a licensor issues a software license key in the form of a text string that a licensee can enter into the product to unlock or otherwise enable certain features of the product. For example, a manufacturer may configure a hardware system (e.g., a storage server) and associated software product (both created by the manufacturer or in conjunction with one or more manufacturing partners, etc.), and provide/deliver the combined product to a user. The user of the combined hardware and software product may unlock the product using a supplied software license key (e.g., that is human readable), for example, included within packaging of the product or as a separate communication (e.g., phone, email, etc.). That is, the software product interprets the software license key to determine whether the user is a valid licensee, and to determine which particular features of the product to unlock.
Notably, where a manufacturer packages hardware and software together, it is generally desirable that the software is not used on other hardware (e.g., not of the manufacturer), and particularly desirable that the software is not copied and used on multiple hardware systems. Where the distribution of the packaged product is limited (e.g., to limited numbers of users, such as enterprises), a high level of trust and maintained communication (“high-touch” support) may allow for a liberal licensing scheme. For example, because the licenses may be easily tracked in such limited numbers, a same string may be used for the license key to enable any instance of the software on any hardware system. Alternatively, different strings may be used (e.g., to unlock various features or to give the appearance of security), but such strings need not be particularly secure due to a low probability of fraudulent use.
Certain hardware and software, however, may have wider distribution, and/or a correspondingly lower level of trust, particularly for low-touch support models (e.g., where there is little to no interaction with the licensee). For instance, volume distribution of the product (e.g., global distribution) makes it increasingly burdensome to maintain sufficient control over software licenses. As such, fraudulent users may enter copied license keys into their software (which may also be copied). Alternatively, if the encryption used to generate the software license key is weak, fraudulent users may break the encryption and generate a key that may be entered into the software to unlock the product. In particular, the fraudulent keys may be used to enable the software product on hardware not originally intended by the manufacturer.
There remains a need, therefore, for software license keys that reduce the likelihood of proliferation and misuse of software licenses, particularly across different hardware systems. Further, there remains a need for such software license keys to be distributed over insecure channels, such as from third party sales, support, and manufacturing partners, for instance, in a form that is readable by the user/licensee.